#ifndef REG_CODE_GENERATOR_OSG_H
#define REG_CODE_GENERATOR_OSG_H


#include <DefineLibReflection.h>
#include <memory>

#include <CppInfo.h>
#include <RegCodeGenerator.h>
#include <DefineCommon.h>

//
class RegCodeGeneratorOsg;
typedef SmartPtr(RegCodeGeneratorOsg) RegCodeGeneratorOsgPtr;
class REFLECTION_DLL RegCodeGeneratorOsg : public RegCodeGenerator
{
public:
    RegCodeGeneratorOsg();
    ~RegCodeGeneratorOsg();

    virtual void wrapClssListToFiles(EStringList classList, const EString& dirName);

    virtual void genRegFun_h(EStringList classList, EString& content);
    virtual void genRegFun_cpp(EStringList classList, EString& content);

    //example, input="osg::Node", output="osg_Node_gen"
    virtual EString toWrapClassName(EString name);
    //example, input="osg_Node_gen", output="osg::Node"
    virtual EString toNormClassName(EString name);
};



#endif // REG_CODE_GENERATOR_OSG_H
